/**
 * 第6章 Spring Boot Web核心应用
 * 代码清单-q1ch06a-197页a：定义一个Web配置类 {@link top.kaoshanji.q1ch06a.config.WebConfig}
 * 代码清单-q1ch06a-197页b：定义一个拦截器 {@link top.kaoshanji.q1ch06a.handler.LoginInterceptor}
 * 代码清单-q1ch06a-198页a：注册拦截器 {@link top.kaoshanji.q1ch06a.config.WebConfig#addInterceptors(org.springframework.web.servlet.config.annotation.InterceptorRegistry)}
 * 代码清单-q1ch06a-199页a：覆盖自动配置已有的消息转换器Bean {@link top.kaoshanji.q1ch06a.config.WebConfiguration#mappingJackson2HttpMessageConverter()}
 * 代码清单-q1ch06a-200页a：添加额外的自定义转换器 {@link top.kaoshanji.q1ch06a.config.WebConfiguration#customConverters()}
 * 代码清单-q1ch06a-201页a2：定义一个类型转换器 {@link top.kaoshanji.q1ch06a.config.CustomConverter}
 * 代码清单-q1ch06a-201页a1：注册一个类型转换器 {@link top.kaoshanji.q1ch06a.config.WebConfig#addFormatters(org.springframework.format.FormatterRegistry)}
 * 代码清单-q1ch06a-208页b：处理静态资源 {@link top.kaoshanji.q1ch06a.config.WebConfig#addResourceHandlers(org.springframework.web.servlet.config.annotation.ResourceHandlerRegistry)}
 * 代码清单-q1ch06a-229页a：跨域 {@link top.kaoshanji.q1ch06a.config.WebConfig#addCorsMappings(org.springframework.web.servlet.config.annotation.CorsRegistry)}
 *
 * @author kaoshanji
 * ^_^
 * create time 2025/5/21 17:16
 */
package top.kaoshanji.q1ch06a;